草庐IT

C++ operator+ 和 operator+= 重载

全部标签

c++ - 重载的 << 插入运算符无法正常工作

所以我想不通为什么我的插入运算符不能为我的列表类工作。我已经看了一段时间,我认为重载的语法是正确的。不确定这一点。关于为什么它不起作用的任何提示?这是代码:编辑:将一些代码更改为当前的代码。抱歉,现在的问题是我无法让它打印任何东西,它只是打印和空行。这是驱动程序:#include#include"polynomial.h"usingnamespacestd;intmain(){Polynomial*poly=newPolynomial();poly->set_coefficient(3,2);poly->set_coefficient(0,2);poly->set_coefficien

c++ - 重载函数和 luabind 的问题

我有一个要绑定(bind)到lua的类。减少的代码可能是:classCSprite2D{voidsetPosition(glm::ivec2val){m_position=val;}voidsetPosition(intposX,intposY){m_position.x=posX;m_position.y=posY;}staticvoidexposeAPI(lua_State*L,constunsignedchar*data){assert(L);luabind::module(L)[luabind::class_("CSprite2D").def("setPosition",(vo

c++ - 重载运算符&& 和||创建一个保存动态逻辑的类

我有一个从枚举创建的类,它可以在未来的任何时候进行测试,无论是否通过,都会返回一个bool值,例如:ConditionObjectcnd(CondIsTuesday);door.setOpenCondition(cnd);然后门有一个条件可以用来确定它的状态。但是我现在希望重载&&和||此条件类的运算符,以便它们可以链接在一起并以正常bool逻辑预期的方式工作。例如,使以下成为可能:ConditionObjectcnd(ConditionObject(CondIsTuesday)||(ConditionObject(CondIsThursday)&&ConditionObject(Co

c++ - 重载 ‘QString(int)’ 不明确

下面的代码片段给出了编译错误重载“QString(int)”的调用不明确与qt4.7.3(系统是linux64bit,debian不稳定)structQSAConnection{QSAConnection():sender(0),signal(0),function_ref(){}QSAConnection(QObject*send,constchar*sig,QSObjectref):sender(send),signal(QLatin1String(sig)),function_ref(ref){}QObject*sender;QStringsignal;QSObjectfunct

c++ - 重载运算符的线程安全新

虽然标准不保证new的线程安全,但大多数多线程操作系统supportthread-safe运算符新。我正在为代码中某些类(例如MyClass)的动态分配实现自己的内存管理。对于MyClass的线程安全,我可能不得不使用pthread或boost::库。我认为如果new是已经线程安全的,那么我可以为MyClass重载它并利用它的安全性而不用担心使用那些库.classMyClass{//datapublic:void*operatornew(size_t);voidoperatordelete(void*);};对于C++03系统/编译器来说,这是一个公平的假设吗?编辑:因为我的问题没有被

C++ 重载运算符<<

我正在尝试为类重载NumExpr类,并且有我要输出的私有(private)变量number。所以他们在这里:NumExpr::NumExpr(stringn){number=atoi(n.c_str());}stringNumExpr::name(){return"num";}ostream&operator我把它变成了一个友元函数,这样它就可以访问私有(private)变量classNumExpr:publicExpr{public:NumExpr(stringv);stringname();private:intnumber;friendostream&operator但是我收到了

【C/C++】深入理解--函数重载(什么是函数重载?为什么要有函数重载?)

目录一、前言二、函数重载🍎什么是函数重载🍐函数重载的条件 🍇函数重载的注意点🍉为什么要有函数重载 🍓为何C语言不支持函数重载,反倒C++可以?💦 Linux环境下演示函数重载 💦结论四、总结与提炼  五、共勉一、前言    自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!”     同时---我们在平时写代码中也会用到几个函数但是他们的实现功能相同,但是有些细节却不同。例如:交换两个数的值其中包括(int,float,

c++ - 如果重载了一个new但是没有加载对应的delete会怎样?

任何人都可以解释如果在C++中重载了new但未加载相应的delete会发生什么情况? 最佳答案 这只是对象构造抛出异常时的问题,在C++115.3.4/18中有描述:Ifnounambiguousmatchingdeallocationfunctioncanbefound,propagatingtheexceptiondoesnotcausetheobject’smemorytobefreed.[Note:Thisisappropriatewhenthecalledallocationfunctiondoesnotallocatem

c++ - 在模板结构外重载运算符

我有以下代码:#include#includeusingnamespacestd;templatestructCMPLX{FRe,Im;struct_printnice{FRe,Im;stringsep;_printnice(constF&Re,constF&Im,conststring&sep):Re(Re),Im(Im),sep(sep){}};CMPLX(FRe,FIm):Re(Re),Im(Im){}_printnicePrintNice(conststring&sep="\t"){return_printnice(Re,Im,sep);}};templateostream&o

c++ - 函数重载和模板推导优先级

考虑以下函数声明:templatef(constT&x);//Version1templatef(constMyClass&x);//Version2如果我用一个与MyClass无关的类型调用f,将调用第一个版本。如果我用MyClass类型调用f(无论模板参数类型是什么),那么将调用第二个版本。但是现在,考虑一下:templateMyDerivedClass:publicMyClass{};将为MyDerivedClass类型调用什么版本的函数? 最佳答案 这在标准的第13.3节中进行了处理。第13.3/1段指出:Eachofthe